﻿#pragma once

#include "Render/Shader.h"
#include "Render/FrameBuffer.h"

class PostProcessEffect
{
public:
  PostProcessEffect(const Ref<Shader> &shader, bool enabled = false);
  virtual ~PostProcessEffect() = default;

  Ref<Shader> GetShader() const { return m_shader; }

  virtual void Update() = 0;
  void Render();


protected:
  bool m_enabled = false;
  Ref<Shader> m_shader;
  Ref<FrameBuffer> m_frameBuffer;
};